#pragma once

#include "../Common/Common.h"

class LayerManager;

//------------------------------------
// Layer
//------------------------------------
class PSDF_CORE_DLL_DECL Layer : public Group
{
	friend LayerManager;

private:
	Layer() {}

	Layer( Layer & ){}

	virtual ~Layer(){};

public:
	virtual const char *	className(){ return "Layer"; }
	
	void					show() { setNodeMask( 0xFFFFFFFF ); }
	
	void					hide() { setNodeMask( 0x00000000 ); }
	
	bool					isShow() { return getNodeMask() != 0; }
	
	void					set_z_index( unsigned int z ) { getOrCreateStateSet()->setRenderBinDetails(z, "RenderBin"); _z_index = z; }

	unsigned int			get_z_index(){ return _z_index; }

private:
	unsigned int			_z_index;
};

